AWS IAM
AWS Identity and Access Management
AWS リソースに対する認証認可
PowerUser つけるとインフラやりやすい
特定のタグがついている EC2/RDS の操作を制限する IAM ポリシー
タグキー:Target、値=Production というタグがついている EC2 や RDS の削除・停止・再起動を禁止するポリシー
code:conf
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ec2:TerminateInstances",
"ec2:StopInstances",
"ec2:RebootInstances"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Target": "Production"
}
}
},
{
"Effect": "Deny",
"Action": [
"rds:DeleteDBInstance",
"rds:StopDBInstance",
"rds:RebootDBInstance"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"rds:db-tag/Target": "Production"
}
}
}
]
}
このポリシーを IAM User/Group に追加すれば、たとえ AmazonEC2FullAccess がアタッチされている IAM ユーザでも、間違って本番用インスタンスを停止するようなことがない
上記に加えて EC2 のタグを編集する権限 (ec2:CreateTags, ec2:DeleteTags) も奪ってしまえば、誤操作だけでなく悪意をもった操作も防げるため、なお安全
役割
ユーザ/クレデンシャル管理
IAM ユーザ
ID/パスワード管理
マネジメントコンソール
アクセスキーID/シークレットアクセスキー
API 操作
定期的なローテーションを実施する
IAM ロールなどで代替するように心がける
MFA(多要素認証)
クレデンシャルのローテーション
アクセス権限管理
IAM グループ
同一の役割を持つ IAM ユーザをグループ化
こちらに権限を付与し、IAM ユーザには直接権限は付与しないほうが管理しやすい
権限の委任
Security Temporary Token
readonly
全サービスの ReadOnly を設定